1. Field
This disclosure relates to basic input-output systems (BIOS) and, more particularly, to updating BIOS.
2. Background Information
As is well-known, system firmware is a relatively expensive form of memory in comparison with alternatives, such as random access memory and disk storage, for example. It is noted that through out this document the term xe2x80x9cfirmwarexe2x80x9d may refer to a memory device, such as flash memory, for example, or, alternatively, to the code stored on the device, depending on the particular context. Due to this expense, firmware is typically space constrained. Therefore, in many instances, it may be desirable to provide an externally originating BIOS, e.g., a non-resident part of the firmware, that may be used to update or supplement the existing BIOS. For example, such an externally provided module may include bug fixes or special purpose code to be executed once and then erased or discarded. One issue when updating BIOS is ensuring that the update is relatively resistant to tampering. Often, however, making an update tamper resistant may involve a large amount of additional code space in the firmware, such as if cryptographic techniques are implemented in code. A need, therefore, exists for a technique to update BIOS at run time that is both efficient in terms of size or memory utilization and also relatively resistant to tampering by unauthorized intruders.